using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Runtime.Serialization;
using System.Collections;
using System.Data;
using System.ComponentModel;
using System.Data.OracleClient;
using WPFExcelReport.Helpers;
using WPFExcelReport.Controls;
namespace WPFExcelReport
{
    public partial class VKSTAGZUO
    {
        public void SetUpNewRow(ref DataRow dwReturn)
        {
            #region
            #endregion
            switch (app.company)
            {
                case "YGR":
                case "SXN":
                case "TST":
                case "UBT":
                default:
                    #region
                    dwReturn["KSZMANDANT"] = "00";
                    dwReturn["KSZKSTKRS"] = "SY";
                    dwReturn["KSZKST"] = "0001";
                    dwReturn["KSZAGANG"] = "RS             ";
                    dwReturn["KSZBASMGE"] = "999999000";
                    dwReturn["KSZME"] = "5";
                    dwReturn["KSZVORLZE"] = "  ";
                    dwReturn["KSZVORLZT"] = "0";
                    dwReturn["KSZPERSZE"] = "  ";
                    dwReturn["KSZPERSZT"] = "0";
                    dwReturn["KSZPERSMB"] = "0";
                    dwReturn["KSZRUEZT"] = "0";
                    dwReturn["KSZBVFS"] = "00";
                    dwReturn["KSZBVFPA"] = "00";
                    dwReturn["KSZBVFPK"] = "00";
                    dwReturn["KSZBVRS"] = "00";
                    dwReturn["KSZBVRPA"] = "00";
                    dwReturn["KSZBVRPK"] = "00";
                    dwReturn["KSZAPS"] = "00";
                    dwReturn["KSZDPGS"] = "0";
                    dwReturn["KSZAPPA"] = "00";
                    dwReturn["KSZDPGPA"] = "0";
                    dwReturn["KSZAPPK"] = "00";
                    dwReturn["KSZDPGPK"] = "0";
                    dwReturn["KSZNSS"] = "0";
                    dwReturn["KSZNSPA"] = "0";
                    dwReturn["KSZNSPK"] = "0";
                    dwReturn["KSZMETHODE"] = "        ";
                    dwReturn["KSZRUEKZ"] = "P";
                    dwReturn["KSZLAGPLKZ"] = "N";
                    dwReturn["KSZMANUELKZ"] = "N";
                    dwReturn["KSZKENNUNG"] = "PB";
                    dwReturn["KSZLIEFNR"] = "        ";
                    dwReturn["KSZPREISLST"] = "     ";
                    dwReturn["KSZLO"] = "01";
                    dwReturn["KSZLB"] = "SM";
                    dwReturn["KSZLP"] = "A       ";
                    dwReturn["KSZAUFBKZ"] = "N";
                    dwReturn["KSZKAPEINL"] = "J";
                    dwReturn["KSZBASMGE2"] = "0";
                    dwReturn["KSZME2"] = " ";
                    dwReturn["KSZMETHODE2"] = "        ";
                    dwReturn["KSZRUEZT2"] = "0";
                    dwReturn["KSZFERTIG"] = "J";
                    dwReturn["KSZKALKV"] = " ";
                    dwReturn["KSZGEBMELD"] = " ";
                    dwReturn["KSZGEBRAUS"] = " ";
                    dwReturn["KSZKALKKZ"] = "J";
                    dwReturn["KSZPRFI"] = " ";
                    dwReturn["KSZPRVAR"] = " ";
                    dwReturn["KSZPRBE"] = " ";
                    dwReturn["KSZPRZU"] = " ";
                    dwReturn["KSZPRDESS"] = " ";
                    dwReturn["KSZFILLER"] = "                       ";
                    dwReturn["KSZAENDZL"] = "1";
                    dwReturn["KSZAENDBEN"] = "JAKV    ";
                    dwReturn["KSZAENDDAT"] = "20141115";
                    dwReturn["KSZNEUBEN"] = "JAKV    ";
                    dwReturn["KSZNEUDAT"] = "20140920";
                    #endregion
                    break;
            }
        }

        public void InsertKSTAGZUO(DataRow dwData, string ITXDBVERSION = "50.24")
        {

            or1 = OracleDB.CreateCommand();
            switch (ITXDBVERSION)
            {
                case "YGR":
                case "SXN":
                case "TST":
                case "UBT":
                default:
                    or1.CommandText = "INSERT INTO KSTAGZUO ( KSZMANDANT,KSZKSTKRS,KSZKST,KSZAGANG,KSZBASMGE,KSZME,KSZVORLZE,KSZVORLZT,KSZPERSZE,KSZPERSZT,KSZPERSMB,KSZRUEZT,KSZBVFS,KSZBVFPA,KSZBVFPK,KSZBVRS,KSZBVRPA,KSZBVRPK,KSZAPS,KSZDPGS,KSZAPPA,KSZDPGPA,KSZAPPK,KSZDPGPK,KSZNSS,KSZNSPA,KSZNSPK,KSZMETHODE,KSZRUEKZ,KSZLAGPLKZ,KSZMANUELKZ,KSZKENNUNG,KSZLIEFNR,KSZPREISLST,KSZLO,KSZLB,KSZLP,KSZAUFBKZ,KSZKAPEINL,KSZBASMGE2,KSZME2,KSZMETHODE2,KSZRUEZT2,KSZFERTIG,KSZKALKV,KSZGEBMELD,KSZGEBRAUS,KSZKALKKZ,KSZPRFI,KSZPRVAR,KSZPRBE,KSZPRZU,KSZPRDESS,KSZFILLER,KSZAENDZL,KSZAENDBEN,KSZAENDDAT,KSZNEUBEN,KSZNEUDAT)"
                   + " VALUES (:KSZMANDANT:,:KSZKSTKRS:,:KSZKST:,:KSZAGANG:,:KSZBASMGE:,:KSZME:,:KSZVORLZE:,:KSZVORLZT:,:KSZPERSZE:,:KSZPERSZT:,:KSZPERSMB:,:KSZRUEZT:,:KSZBVFS:,:KSZBVFPA:,:KSZBVFPK:,:KSZBVRS:,:KSZBVRPA:,:KSZBVRPK:,:KSZAPS:,:KSZDPGS:,:KSZAPPA:,:KSZDPGPA:,:KSZAPPK:,:KSZDPGPK:,:KSZNSS:,:KSZNSPA:,:KSZNSPK:,:KSZMETHODE:,:KSZRUEKZ:,:KSZLAGPLKZ:,:KSZMANUELKZ:,:KSZKENNUNG:,:KSZLIEFNR:,:KSZPREISLST:,:KSZLO:,:KSZLB:,:KSZLP:,:KSZAUFBKZ:,:KSZKAPEINL:,:KSZBASMGE2:,:KSZME2:,:KSZMETHODE2:,:KSZRUEZT2:,:KSZFERTIG:,:KSZKALKV:,:KSZGEBMELD:,:KSZGEBRAUS:,:KSZKALKKZ:,:KSZPRFI:,:KSZPRVAR:,:KSZPRBE:,:KSZPRZU:,:KSZPRDESS:,:KSZFILLER:,:KSZAENDZL:,:KSZAENDBEN:,:KSZAENDDAT:,:KSZNEUBEN:,:KSZNEUDAT:)";
                    or1.CommandText = INTEXDBC.InjectData(or1.CommandText, dwData); 
                    break;
            }
            Connect2Proxy(or1);
        }
        public DataSet QKSZ01(DataRow dwData)
        {
            or1 = OracleDB.CreateCommand();
            or1.CommandText = "SELECT SUBSTR(SDDATEN,2,28) AS KDES,SUBSTR(SDDATEN,52,10) AS KSDES,M.* FROM  KSTAGZUO M"
                    + " LEFT JOIN SDDAT ON SDSA='0231' AND SUBSTR(SDKEY,3,15)= KSZAGANG"
                             + " WHERE KSZMANDANT=:KSZMANDANT: AND KSZKSTKRS=:KSZKSTKRS: AND KSZKST=:KSZKST: AND KSZAGANG=:KSZAGANG:";
            or1.CommandText = INTEXDBC.InjectData(or1.CommandText, dwData);
            SResult = Connect2Proxy(or1);
            SResult.Tables[0].TableName = TableName;
            return SResult;
        }
        public DataSet QKSZ02(DataRow dwData)
        {
            or1 = OracleDB.CreateCommand();
            or1.CommandText = "SELECT KSZAGANG AS KEY, KSZAGANG AS DES,SUBSTR(SDDATEN,2,28) AS KDES,SUBSTR(SDDATEN,52,10) AS KSDES,M.* FROM  KSTAGZUO M"
                + " LEFT JOIN SDDAT ON SDSA='0231' AND SUBSTR(SDKEY,3,15)= KSZAGANG"
                               + " WHERE KSZMANDANT=:KSZMANDANT: " 
            + dwData["KSZKSTKRS"].ToString()
                + dwData["KSZKST"].ToString()
                + dwData["KSZAGANG"].ToString();
            or1.CommandText = INTEXDBC.InjectData(or1.CommandText, dwData);
            SResult = Connect2Proxy(or1);
            SResult.Tables[0].TableName = TableName;
            return SResult;
        }
        public void DKSZ00(DataRow dwData)
        {
            or1 = OracleDB.CreateCommand();
            or1.CommandText = "DELETE FROM  KSTAGZUO"
              + " WHERE KSZMANDANT=:KSZMANDANT: ";
            or1.CommandText = INTEXDBC.InjectData(or1.CommandText, dwData);
            Connect2Proxy(or1);

        }
        public void DKSZ01(DataRow dwData)
        {
            or1 = OracleDB.CreateCommand();
            or1.CommandText = "DELETE FROM  KSTAGZUO "
              + " WHERE KSZMANDANT=:KSZMANDANT: AND KSZKSTKRS=:KSZKSTKRS: AND KSZKST=:KSZKST: AND KSZAGANG=:KSZAGANG:";
            or1.CommandText = INTEXDBC.InjectData(or1.CommandText, dwData);
            Connect2Proxy(or1);

        }
        public void DKSZ02(DataRow dwData)
        {
            or1 = OracleDB.CreateCommand();
            or1.CommandText = "DELETE FROM  KSTAGZUO"
              + " WHERE KSZMANDANT=:KSZMANDANT: AND KSZKSTKRS=:KSZKSTKRS: AND KSZKST=:KSZKST: ";
            or1.CommandText = INTEXDBC.InjectData(or1.CommandText, dwData);
            Connect2Proxy(or1);

        }

        public void UpdateKSTAGZUO(DataRow dwData, int option = 1)
        {
            if (option == 0)
            {
                switch (app.company)
                {
                    default:
                    case "YGR":
                    case "SXN":
                    case "TST":
                    case "UBT":
                        UKSZ01(dwData); break;
                }
            } 
        }

        public void UKSZ01(DataRow dwData)
        {
            or1 = OracleDB.CreateCommand();
            or1.CommandText = "UPDATE KSTAGZUO SET KSZMANDANT=:KSZMANDANT:,KSZKSTKRS=:KSZKSTKRS:,KSZKST=:KSZKST:,KSZAGANG=:KSZAGANG:,KSZBASMGE=:KSZBASMGE:,KSZME=:KSZME:,KSZVORLZE=:KSZVORLZE:,KSZVORLZT=:KSZVORLZT:,KSZPERSZE=:KSZPERSZE:,KSZPERSZT=:KSZPERSZT:,KSZPERSMB=:KSZPERSMB:,KSZRUEZT=:KSZRUEZT:,KSZBVFS=:KSZBVFS:,KSZBVFPA=:KSZBVFPA:,KSZBVFPK=:KSZBVFPK:,KSZBVRS=:KSZBVRS:,KSZBVRPA=:KSZBVRPA:,KSZBVRPK=:KSZBVRPK:,KSZAPS=:KSZAPS:,KSZDPGS=:KSZDPGS:,KSZAPPA=:KSZAPPA:,KSZDPGPA=:KSZDPGPA:,KSZAPPK=:KSZAPPK:,KSZDPGPK=:KSZDPGPK:,KSZNSS=:KSZNSS:,KSZNSPA=:KSZNSPA:,KSZNSPK=:KSZNSPK:,KSZMETHODE=:KSZMETHODE:,KSZRUEKZ=:KSZRUEKZ:,KSZLAGPLKZ=:KSZLAGPLKZ:,KSZMANUELKZ=:KSZMANUELKZ:,KSZKENNUNG=:KSZKENNUNG:,KSZLIEFNR=:KSZLIEFNR:,KSZPREISLST=:KSZPREISLST:,KSZLO=:KSZLO:,KSZLB=:KSZLB:,KSZLP=:KSZLP:,KSZAUFBKZ=:KSZAUFBKZ:,KSZKAPEINL=:KSZKAPEINL:,KSZBASMGE2=:KSZBASMGE2:,KSZME2=:KSZME2:,KSZMETHODE2=:KSZMETHODE2:,KSZRUEZT2=:KSZRUEZT2:,KSZFERTIG=:KSZFERTIG:,KSZKALKV=:KSZKALKV:,KSZGEBMELD=:KSZGEBMELD:,KSZGEBRAUS=:KSZGEBRAUS:,KSZKALKKZ=:KSZKALKKZ:,KSZPRFI=:KSZPRFI:,KSZPRVAR=:KSZPRVAR:,KSZPRBE=:KSZPRBE:,KSZPRZU=:KSZPRZU:,KSZPRDESS=:KSZPRDESS:,KSZFILLER=:KSZFILLER:,KSZAENDZL=:KSZAENDZL:,KSZAENDBEN=:KSZAENDBEN:,KSZAENDDAT=:KSZAENDDAT:,KSZNEUBEN=:KSZNEUBEN:,KSZNEUDAT=:KSZNEUDAT:"
              + " WHERE KSZMANDANT=:KSZMANDANT: AND KSZKSTKRS=:KSZKSTKRS: AND KSZKST=:KSZKST: AND KSZAGANG=:KSZAGANG:";
            or1.CommandText = INTEXDBC.InjectData(or1.CommandText, dwData);
            Connect2Proxy(or1); 
        }
    }
}
